package com.boot.system.service;

import com.boot.common.result.Result;
import com.boot.system.entity.SysDict;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

import java.util.List;
import java.util.Map;

public interface DictService extends IService<SysDict> {

    /**
     * 字典分页
     * @param queryParam 查询条件
     * @return 列表
     */
    Page<SysDict> getDictPage(Map<String, Object> queryParam);

    /**
     * 新增字典
     * @param dataParam 字典表单
     * @return 状态
     */
    Result<?> addDict(Map<String, Object> dataParam);

    /**
     * 修改字典
     * @param dataParam 字典表单
     * @return 状态
     */
    Result<?> updateDict(Map<String, Object> dataParam);

    /**
     * 删除字典
     * @param ids 多个以英文逗号(,)分割
     * @return 状态
     */
    boolean deleteDict(String ids);

    /**
     * 获取列表（缓存）
     * @return 列表
     */
    List<SysDict> getCacheList();

    /**
     * 获取（缓存）
     * @param code 字典编码
     * @return 值
     */
    SysDict getCache(String code);

    /**
     * 设置（缓存）
     * @param id 角色ID
     */
    void setCache(Long id);

    /**
     * 删除（缓存）
     * @param ids ID集合
     */
    void deleteCache(List<Long> ids);

}
